package com.tfjybj.itoo.teach.provider.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tfjybj.itoo.teach.entity.AcademyEntity;
import com.tfjybj.itoo.teach.model.AcademyModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * AcademyDao接口
 * academy表
 *
 * @author 田成荣
 * @version 2.0.0
 * @since 2.0.0 2018-11-08 19:34:10
 */
@Repository("academyDao")
public interface AcademyDao extends BaseMapper<AcademyEntity> {
	
	//region 模板生成：模糊查询
	/**
     * 根据机构名称模糊查询academy
     *
     * @param name  机构名称
     * @return 模糊查询的academy集合
     * @author 田成荣
     * @since 2.0.0 2018-11-08 19:34:10
     */
    List<AcademyEntity> queryLikeName(@Param("name") String name);
	//endregion

    /* **********************************以下为非模板生成的内容********************************* */
    /**
     *根据学院或者机构id查询学院或者机构名称
     * @param ids 学院或者机构id
     * @return 查询的学院或者机构名称
     * @author 杨燕梅
     * @since 2.0.0 2018-11-17 15:57:19
     */
    List<AcademyModel> queryInfoByAcadIdOrInstId(@Param("ids") List<String> ids);

    /**
     *查询所有学院或者机构名称
     * @return 所有的学院或者机构名称
     * @author 杨燕梅
     * @since 2.0.0 2018-11-17 15:57:19
     */
    List<AcademyModel>queryAcadOrInstInfo();

    /**
     * 查询所有Academy
     * @return
     * @author 杨燕梅
     * @since 2.0.0 2018-11-23 11:52:12
     */
    List<AcademyModel>queryAllAcademy();

    /**
     * 查询所有教学部门（带分页）
     * @return
     * @author 杨燕梅
     * @since 2.0.0 2018-12-19 15:17:30
     */
    List<AcademyModel>queryAllAcademyPageInfo();

    /**
     * 根据教学部门名称或教学部门简称模糊查询academy(带分页)
     * @param searchContent  教学部门名称
     * @return 模糊查询的academy
     * @author 杨燕梅
     * @since 2.0.0 2018-12-6 21:24:36
     */
    List<AcademyModel> queryByLikeNameOrAbbreviation(@Param("searchContent") String searchContent);

    /**
     * 根据教学部门ID查询教学部门详情
     *
     * @param idList 教学部门ID
     * @return 教学部门实体集合
     * @author 杨燕梅
     * @since 2.0.0 2018-12-11 10:14:26
     */
    List<AcademyModel> queryAcademyById(@Param("idList") List<String> idList);

    /**
     * 根据教学部门代码和教学部门名称查询教学部门是否已存在
     *
     * @param code   教学部门代码
     * @param name   教学部门名称
     * @return 教学部门信息
     * @author 杨燕梅
     * @since 2.0.0 2018-11-29 19:37:30
     */
    List<AcademyEntity> queryByCodeAndNameExist(@Param("code") String code, @Param("name") String name);

    /**
     * 根据教学部门名称查询教学部门Id
     * @param name  教学部门名称
     * @return 教学部门Id
     * @author 杨燕梅
     * @since 2.0.0 2018-12-2 18:55:11
     */
    String queryAcademyIdByName(@Param("name") String name);

    /**
     * 无参查询Academy表所有学院信息
     *
     * @author 智雪艳
     * @since 2.0.0 2019-05-23 14:13:09
     */
    List<AcademyEntity> findAcademy();

    /**
     * 无参查询所有二级学院,去除没有专业的学院,附加专业数
     *
     * @return 二级学院集合
     * @author 智雪艳
     * @since 2.0.0 2019-05-23 14:13:09
     */
    List<AcademyModel> selAcademy();
}
